Channel coding is commonly used in a communications system to improve data transmission reliability and ensure communication quality. A Polar code is a coding manner that can approach a Shannon capacity and low coding and decoding complexity. The Polar code is a linear block code. A generator matrix of the Polar code is GN., and a coding process of the Polar code is that x1N=u1NGN., where GN.=BN, a code length N=2n, and n≥0.
Herein,
      F    =          [                                    1                                0                                                1                                1                              ]        ,and BN is a transposed matrix, for example, a bit reversal matrix.
 is a Kronecker power of F and is defined as =F. The Polar code may be expressed as (N,K,A,uAC) by using a coset code. A coding process of the Polar code is that: x1N=uAGN.(A)⊕uACGN.(AC), where A is a set of information bit indexes, and GN.(A) is a submatrix that is in the GN. and obtained from a line corresponding to an index in the set A, and GN.(AC) is a submatrix that is in the GN. and obtained from a line corresponding to an index in a set AC. uAC uAC are frozen bits, which are known bits, and a quantity of uAC is (N−K). For simplicity, these frozen bits may be set to 0.
SC (successive-cancellation) decoding may be used in Polar code decoding, where a decoding process may be as follows:
A Polar code is considered, where a parameter of the Polar code is (N,K,A,uAC).
In SC decoding, the following conditional likelihood function is calculated in sequence:
                                                        L              N                              (                i                )                                      ⁡                          (                                                y                  1                  N                                ,                                                      u                    ^                                    1                                      i                    -                    1                                                              )                                ⁢                      =            Δ                    ⁢                      ln            ⁢                                                            W                  N                                      (                    i                    )                                                  ⁡                                  (                                                            y                      1                      N                                        ,                                                                                            u                          ^                                                1                                                  i                          -                          1                                                                    |                      0                                                        )                                                                              W                  N                                      (                    i                    )                                                  ⁡                                  (                                                            y                      1                      N                                        ,                                                                                            u                          ^                                                1                                                  i                          -                          1                                                                    |                      1                                                        )                                                                    ,                            (        1        )            where
y1N is a received signal vector (y1, y2, . . . , yN), and û1i−1 is a bit vector (u1, u2, . . . , ui−1). W is a transition probability, and L represents a log-likelihood ratio.
If i⊂A, the following decision is made:
                                          u            ^                    i                =                  {                                                                      0                  ,                                                                                                  if                    ⁢                                                                                  ⁢                                                                  L                        N                                                  (                          i                          )                                                                    ⁡                                              (                                                                              y                            1                            N                                                    ,                                                                                    u                              ^                                                        1                                                          i                              -                              1                                                                                                      )                                                                              ≥                  0                                                                                                      1                  ,                                                            otherwise                                                                        (        2        )            If i⊂AC, it is simply assumed that ûi=ui  (3)
In the foregoing formulas (2) and (3), ûi represents a decision value of a bit ui.
Complexity of SC decoding is O(N log 2N). In a case in which the code length N is very long, SC decoding can achieve good performance and approximately reach a Shannon limit.
However, in SC decoding, decoding can only be sequentially performed bit by bit, a hard decision is made after each bit is decoded, and then a result of the hard decision is used in subsequent bit decoding, which has relatively low flexibility.